#include <FuncaoPerimetroBonus.h>

int FuncaoPerimetroBonus::avalia(const Tabuleiro& tab,const Jogador& jog)
{
	int i,j;
	int id;
	int in,jn;
	int val;
	int temp;

	id = jog.getId();
	val = 0;
	for(i=0; i<TAM; i++)
	{
		for(j=0; j < TAM; j++)
		{
			if(tab.getPos(i,j) != 0)
			{
				//Normalizando a posicao para o segundo quadrante
				if(i > TAM/2)
					in = TAM -i;
				else
					in = i;
				
				if(j > TAM/2)
					jn = TAM -j;
				else
					jn = j;
				
				// Comtabiliza o perimetro em torno do centro
				temp = 4*(TAM/2- in) + 4*(TAM/2 - jn);
				
				// Verifica se está num bom perimetro em torno dos cantos
				if(in>jn)
				{
					if(in%2 == 1)
						temp = -temp;
				}else
				{
					if(jn%2 == 1)
						temp = -temp;
				}
				
				// Verifica o jogador em questao
				if(tab.getPos(i,j) != id)
					temp = -temp;
				
				val+= temp;
			}		
		}
	}
	
	return val;	
}
